Anonymous Types হল C# এর একটি বৈশিষ্ট্য যা আপনাকে একটি নতুন টাইপ তৈরি করতে দেয়, যার জন্য আপনি কোন ক্লাস বা ডাটাটাইপ পূর্বে ডিফাইন না করেও শুধুমাত্র প্রোপার্টির নাম এবং মান নির্ধারণ করতে পারেন। এই প্রকারের টাইপগুলি সাধারণত LINQ এর মধ্যে ব্যবহৃত হয়, যখন আপনি একটি কুয়েরির মাধ্যমে নির্বাচিত ডেটাকে একটি নির্দিষ্ট আউটপুট ফরম্যাটে ফেরত দিতে চান।
এগুলি মূলত read-only (পড়তে পারা) প্রোপার্টি নিয়ে গঠিত, এবং এগুলি বিশেষভাবে উপকারী যখন আপনি ডেটা ফিল্টার বা নির্বাচনের মাধ্যমে একটি নতুন অস্থায়ী অবজেক্ট তৈরি করতে চান।
Anonymous Types তৈরি করতে আপনি new কিওয়ার্ড ব্যবহার করেন এবং প্রোপার্টি নাম ও মান নির্ধারণ করেন। এখানে একটি উদাহরণ দেওয়া হল যেখানে একটি LINQ Query ব্যবহার করা হয়েছে:
var student = new
{
Name = "John",
Age = 25,
Grade = "A"
};
Console.WriteLine($"Name: {student.Name}, Age: {student.Age}, Grade: {student.Grade}");
এখানে, student
নামক একটি অ্যানোনিমাস টাইপ তৈরি করা হয়েছে যার তিনটি প্রোপার্টি রয়েছে: Name
, Age
, এবং Grade
। আপনি এতে নতুন টাইপের নাম বা ক্লাস তৈরি করেননি, তবে new কিওয়ার্ড ব্যবহার করে ডাইনামিকভাবে এই টাইপের একটি অবজেক্ট তৈরি করেছেন।
LINQ Query ব্যবহার করার সময়, যদি আপনি কোনও কুয়েরি থেকে নির্দিষ্ট কিছু ডেটা সিলেক্ট করতে চান এবং সেই ডেটাকে একটি নতুন টাইপ হিসেবে ফেরত দিতে চান, তবে আপনি Anonymous Types ব্যবহার করতে পারেন। এখানে একটি উদাহরণ দেওয়া হল:
List<Student> students = new List<Student>
{
new Student { Name = "John", Age = 22, Grade = "A" },
new Student { Name = "Anna", Age = 24, Grade = "B" },
new Student { Name = "Mike", Age = 23, Grade = "A" }
};
var selectedStudents = from student in students
where student.Grade == "A"
select new
{
student.Name,
student.Age
};
foreach (var student in selectedStudents)
{
Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
}
এখানে, LINQ Query ব্যবহার করে Grade "A" থাকা ছাত্রদের Name এবং Age নির্বাচন করা হয়েছে এবং সেগুলি একটি Anonymous Type হিসেবে ফেরত দেওয়া হয়েছে। এখানে new কিওয়ার্ড দিয়ে একটি নতুন টাইপ তৈরি করা হয়েছে যা Name
এবং Age
প্রোপার্টি ধারণ করে।
Anonymous Types এবং Object Initializers মাঝে কিছু পার্থক্য রয়েছে:
Anonymous Types ব্যবহার করা খুবই সুবিধাজনক, বিশেষত LINQ কুয়েরি এবং অন্যান্য ডেটা ম্যানিপুলেশন অপারেশনে যখন আপনি অস্থায়ীভাবে ডেটাকে একটি নির্দিষ্ট ফরম্যাটে ফেরত দিতে চান। এটি কোডকে আরও সিম্পল এবং রিডেবল করে তোলে, তবে মনে রাখতে হবে যে, এগুলি read-only এবং প্রপার্টি পরিবর্তন করার সুযোগ নেই।
common.read_more